iT邦幫忙

1

[TIPTOP] 一個SSO方案的可行思路

  • 分享至 

  • xImage
  •  

TIPTOP 可以執行客戶端的程式 還可以帶參數 還可以回傳值,可以在 weblogin裡面利用這個特性做SSO。

構思:

  1. weblogin 裡面可以產生一組亂數碼ID 存入 一個獨立的SSO 專用ORACLE資料庫裡面的資料表 (避免資料庫密碼搞得到處都是)
  2. 把這組亂數ID 傳入客戶端的 C:\TIPTOP\ssologin.exe {獨立SSOID}
  3. 這隻程式拿到ID 就進到資料庫查看ID是否存在?
  4. 若存在,就讀取本環境的電腦名稱、目前登入使用者、目前IP...等環境資訊,判斷當前使用者是誰? 寫回SSO專用資料庫,並產生新的ID。
  5. 新的ID產生後,回傳給TIPTOP weblogin。
  6. TIPTOP到資料庫取出當前登入者帳號。 使用該帳號註冊登入。

完成之後就可以把所有密碼欄位全部打亂了,不讓使用者用正常的登入介面登入。
密碼不能大量改,只要使用了密碼原則造成大量集中修改密碼時,就會有很多人無法登入系統。
(這部份我覺得奇怪,有哪位高人知道問題在哪嗎?)

   DEFINE cmd STRING
   DEFINE ok BOOLEAN
   #檢查客戶端某個文件是否存在
   LET filename ='c:/test.txt'
   LET cmd = SFMT('cmd /C "if exist %1 (exit 0) else (exit 1)"',filename)
   CALL ui.Interface.frontCall("standard","execute",[cmd,1],[ok])
   RETURN ok
 ### 另外一種寫法  ###
  DEFINE FileName   STRING
  DEFINE Result     integer
  
  #执行本地文件
  --LET FileName="D:\\temp\\testprg.exe" 
  
  #执行远程共享文件   
  --LET FileName="\\\\192.168.100.192\\abc\\testprg.exe"  
  
  #执行远程共享文件+参数(下例中wowhaha为命令行参数)
  LET FileName="\\\\192.168.100.192\\abc\\test2.exe wowhaha"  

  #参数列表中的0,代表命令运行方式为no wait
  CALL ui.interface.frontcall("standard","execute",[FileName,0],Result)
  IF Result!=1 THEN
    DISPLAY "Run client file error!"
  END IF
   

https://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_frontcalls_intro.html


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言